INTERACTIVITÉ
Actionscript > Key
par : mc
L’objet Key permet de commander à l’aide des touches du clavier une interface et des MovieClips.
Key.press
Initialement, seul la méthode « Key.press » permettait d’agir avec les touches du clavier. Il permet d’utiliser les touches alphabétiques, numériques et certaines touches particulières (espace, contrôle, delete, fleches ....) mais ne détecte pas la pression simultanée sur 2 touches.
fichier « keypress.fla » :
1. Créez un nouveau fichier flash et, dans la 1ère image de la ligne du temps, écrivez le code suivant : var lettre = « ? » ; > crée une variable dont la valeur (string) est « ? »
2. placez sur la scène une occurence d’un bouton. En le sélectionnant, écrivez dans la fenêtre Actions, le code suivant :

etc ...
3. Créez sur la scène 1 champs de texte dynamique lié à la variable « lettre »
4. Publiez et constatez que la pression d’une touche fait apparaître la lettre correspondante.
KeyDown
Actuellement, l’objet Key est recommandé pour des applications nécessitant de multiples pressions de touches ou la pression simultanée sur 2 touches (par ex. un jeu).
La méthode onKeyDown permet de déterminer qu’une touche du clavier, sans détermination, est pressée. Son utilité est donc très limitée.
Pour déterminer quelle touche est pressée, il est nécessaire de recourir au code de la touche ou à sa valeur Ascii (vous trouverez dans l’aide de Flash ce code et ces valeurs). Chaque touche a son code correspondant mais certaines n’ont pas de valeur Ascii, par contre Ascii permet de différencier les minuscules des Majuscules. Certaines touches (espace, contrôle, delete, fleches ...) peuvent être appellées par un nom, ainsi la touche « flêche haut » possède le code 38 mais peut également être appellée par Key.UP Dans vos applications, tenez compte du fait que tous les ordinateurs n’ont pas le même clavier (par ex. les portables n’ont pas de pavé numérique).
getCode() & getAscii() :
La méthode getCode() retourne le code de la dernière pressée. La méthode getAscii() retourne la valeur Ascii de la dernière pressée.
Pour connaître le code et la valeur Ascii d’une touche (voir fichier « touches.fla ») :
1. Créez un nouveau fichier flash et placez sur la scène une occurence d’un MovieClip vide. En le sélectionnant, écrivez dans la fenêtre Actions, le code suivant :

onClipEvent(keyDown) > événement de clip détectant une pression de touche
var code = Key.getCode() ; > crée une variable nommée « code » dont la valeur sera le code de la touche pressée
var ascii = Key.getAscii() ; > crée une variable nommée « ascii » dont la valeur sera la valeur Ascii de la touche pressée
2. Créez sur la scène 2 champs de textes dynamiques liés aux variables « code » et « ascii ».
3. Publiez et constatez que la pression des touches fait apparaître son code et sa valeur Ascii. Constatez les différences entre celles-ci.
Key.isDown()
Pour utiliser cette valeur dans un script, utilisez la méthode « isDown() ». Par ex. le fichier « keydown.fla » permet de faire pivoter et avancer un MovieClip dans 8 directions différentes à l’aide des touches flèches.
1. Créez un nouveau fichier flash et placez sur la scène une instance d’un MovieClip nommé « perso » dans lequel vous dessinez la forme de votre choix.
2. Dans la 1ère image de la ligne du temps, écrivez le code suivant :

perso.onEnterFrame = function() > crée une fonction vérifiée à chaque entrée d’image du MovieClip « perso »
if (Key.isDown(38) && Key.isDown(39)) > si les touches « flèche gauche » et « flèche bas » sont pressées
perso._rotation = 45 ; > « perso » pivote de 45° par rapport à sa position originelle
perso._x += 5 ; > « perso » se déplace de 5 pixels vers la droite
perso._y += -5 ; « perso » se déplace de 5 pixels vers le haut
etc ...
Placez d’abord les conditions vérifiant la pression sur 2 touches car le lecteur Flash arrête de vérifier la boucle « if/else if » dès qu’une condition est vérifiée. Si vous pressez sur deux touches et que le lecteur vérifie d’abord qu’une de ces touches est pressée, il n’ira jamais vérifier qu’une autre touche est pressée simultanément.
3. Publiez et constatez que le movieClip s’orient et avance selon la pression sur une ou deux touches « flèche ».
Téléchargez cet exercice au format PDF et les fichiers .fla ci-dessous

